use std::collections::HashMap;

/**
测试使用map buff 为每个 对象存放一个  缓冲区
类似 c++ 的二维数组buff

实现逻辑：
 1. 创建一个  map 存放 buff 对象

 2. 插入一个数组

 3. 读取的时候 使用 mut 可变读取 获取 map 这段空间的 变更权

 4. 使用 获取 使用权的 buff
*/
fn main() {
    println!("Hello, world!");
    // buf map
    let mut map_buff = HashMap::new();
    let mut map_len=HashMap::new(); // 辅助的 buff 长度 map
    let key=1;
    map_buff.insert(key,[0u8;1024]); // 插入 1024 长度的buf
    map_len.insert(key,1123);
    // 使用 key 1 中的 buff 使用权，这时候 buff 对象只是指针 ，没有内存拷贝
    // 所以 在 map buff 没有销毁前 内存安全
    let buff = map_buff.get_mut(&1).unwrap();
    let get_len=map_len.get(&key).unwrap();
    println!("daa：{:?},len:{}",buff.to_vec(),get_len); //
    let buff = map_buff.get_mut(&1).unwrap(); // 再次副去buff

    println!("daa：{:?}",buff.to_vec()); //再次查看结果
    // println!("data 1 : {:?}",buf.to_vec());
}
